// Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef _LINUX_PORT_H_
#define	_LINUX_PORT_H_

#include <getopt.h>
#include <stdint.h>
#include <sys/types.h>
#include "sys_endian.h"
#include "sys_gpt.h"
#include "sys_uuid.h"

/* Linux has no setprogname */
void setprogname(const char* name);
const char* getprogname(void);

/* uuid - Translate BSD uuid functions into the Linux variant. */
#define uuid_s_ok 0
int32_t uuid_equal(struct uuid* a, struct uuid* b, uint32_t* unused);
int32_t uuid_is_nil(struct uuid* uuid, uint32_t* unused);
void uuid_create(struct uuid* uuid, uint32_t* unused);
void uuid_create_nil(struct uuid* uuid, uint32_t* unused);
void uuid_from_string(const char* s, struct uuid* uuid, uint32_t* status);
void uuid_to_string(struct uuid* uuid, char** s, uint32_t* unused);

/* Linux has no strlcpy */
void strlcpy(char* dst, const char* src, size_t len);

/* This is used in some places to indicated unused parameters. */
#define __unused

#endif  /* _LINUX_PORT_H_ */
